package com.kuyun.base.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.kuyun.base.base.Page;
import com.kuyun.base.model.BaseRole;
import com.kuyun.base.model.HttpResult;
import com.kuyun.base.model.ZtreeBean;

public interface BaseRoleService {
	/**
	 * 新增或修改角色  （根据id是否为空判断）
	 * @author 史梁辰
	 *
	 * @date 2016-6-19下午9:43:43
	 *
	 * @param role
	 * @return
	 */
	public boolean addOrUpdate(BaseRole role)throws Exception;

	/**
	 * 删除角色
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:34:18
	 * 
	 * @param role
	 * @return
	 */
	public HttpResult deleteRole(String id)throws Exception;

	/**
	 * 获取角色数据列表
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:35:39
	 * 
	 * @param role
	 * @return
	 */
	public List<BaseRole> findRole(Page<BaseRole> page,BaseRole role)throws Exception;

	/**
	 * 根据id获取角色信息
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:36:37
	 * 
	 * @param id
	 * @return
	 */
	public BaseRole getRoleById(String id)throws Exception;
	/**
	 * 获取角色总数
	 * @author 史梁辰
	 *
	 * @date 2016-7-11下午5:31:54
	 *
	 * @param role
	 * @return
	 */
	public int getRoleCount(BaseRole role);
	/**
	 * 角色名称重复检查
	 * @author 史梁辰
	 *
	 * @date 2016-7-11下午5:32:05
	 *
	 * @param name
	 * @param id
	 * @return
	 */
	public int checkRoleName(String name,String id);
	/**
	 * 获取角色树
	 * @author 史梁辰
	 *
	 * @date 2016-7-13下午8:48:37
	 *
	 * @param id
	 * @return
	 */
	public List<ZtreeBean> getRoleTree(String id);
	/**
	 * 保存用户角色
	 * @author 史梁辰
	 *
	 * @date 2016-7-13下午9:49:59
	 *
	 * @param id
	 * @param userId
	 * @param roleId
	 * @return
	 */
	public int saveUserRole(String ids,String id)throws Exception;
	
	/**
	 * 获取权限树
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午8:48:37
	 * 
	 * @param id
	 * @return
	 */
	public List<ZtreeBean> getPriTree(String id);

	/**
	 * 保存角色权限
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午9:49:59
	 * 
	 * @param id
	 * @param userId
	 * @param roleId
	 * @return
	 */
	public int saveRolePri( String ids, String id);
}
